package com.neuedu.api.collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.function.Consumer;

/**
 * @author 金山
 * 项目：javase
 * site: https://blog.fulfill.com.cn
 * 描述  集合的遍历
 * @data 2024/10/2511:33
 */
public class MyListIterator {

    public static void main(String[] args) {

        List list = new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        list.add(100);

        //size ()     get(i)    list.fori (IDEA)自动生成下列代码
        for (int i = 0; i < list.size(); i++) {
            System.out.println("list.get(i) = " + list.get(i));
        }

        //使用迭代器  (Collection    set  list(ArrayList \LinedkList) )
        // Iterator it = list.iterator();
        // while(it.hasNext()){
        //     Object item = it.next();
        //     System.out.println("item = " + item);
        // }


        for( Iterator it = list.iterator()  ; it.hasNext()   ;    ){
            Object item = it.next();
            System.out.println("item = " + item);
        }

        //增强For  1.5
        /***
         * <div v-for=" user in   userList " ></div>
         */
        for(  Object item :    list ){
            System.out.println("for(  Object item :    list ){  " + item);
        }

        // int nums[] = new int[]{10,20,30,40};
        // for (int num : nums) {
        //
        // }

        // list.stream().forEach(new Consumer() {
        //     public void accept(Object o) {
        //         System.out.println(o);
        //     }
        // });

        // list.forEach(new Consumer() {
        //     public void accept(Object o) {
        //         System.out.println(o);
        //     }
        // });

        //接口函数  Lambda表达式
        // list.forEach(
        //     (Object o) ->{
        //         System.out.println(o);
        //     }
        // );

        // list.forEach(
        //          o ->{  System.out.println(o); }
        // );

        list.forEach(
                o ->  System.out.println(o)
        );


        //函数的引用
        list.forEach(  System.out::println  );



        List  linkedList = new LinkedList();
        linkedList.add(100);
        linkedList.add(200);
        linkedList.add(300);

        for (Object o : linkedList) {
            System.out.println("o = " + o);
        }
        linkedList.forEach(System.out::println);


    }
}
